Source:NetHack 3.1.0/decl.h
Below is the full text to decl.h from the source code of NetHack 3.1.0. To link to a particular line, write [[NetHack 3.1.0/decl.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)decl.h 3.1 92/12/11 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef DECL_H 6. #define DECL_H 7. 8. #define E extern 9. 10. E int NDECL((*occupation)); 11. E int NDECL((*afternmv)); 12. 13. E const char *hname; 14. E int hackpid; 15. #if defined(UNIX) || defined(VMS) 16. E int locknum; 17. #endif 18. #ifdef DEF_PAGER 19. E char *catmore; 20. #endif /* DEF_PAGER */ 21. 22. E char SAVEF[]; 23. #ifdef MICRO 24. E char SAVEP[]; 25. #endif 26. 27. E int NEARDATA bases[]; 28. 29. E int NEARDATA multi; 30. E int NEARDATA warnlevel; 31. E int NEARDATA nroom; 32. E int NEARDATA nsubroom; 33. E int NEARDATA occtime; 34. 35. E int x_maze_max, y_maze_max; 36. E int otg_temp; 37. 38. #ifdef REDO 39. E int NEARDATA in_doagain; 40. #endif 41. 42. E struct dgn_topology { /* special dungeon levels for speed */ 43. d_level d_oracle_level; 44. d_level d_bigroom_level; /* unused */ 45. #ifdef REINCARNATION 46. d_level d_rogue_level; 47. #endif 48. d_level d_medusa_level; 49. d_level d_stronghold_level; 50. d_level d_valley_level; 51. d_level d_wiz1_level; 52. d_level d_wiz2_level; 53. d_level d_wiz3_level; 54. d_level d_juiblex_level; 55. d_level d_orcus_level; 56. d_level d_baalzebub_level; /* unused */ 57. d_level d_asmodeus_level; /* unused */ 58. d_level d_portal_level; /* only in goto_level() do.c */ 59. d_level d_sanctum_level; 60. d_level d_earth_level; 61. d_level d_water_level; 62. d_level d_fire_level; 63. d_level d_air_level; 64. d_level d_astral_level; 65. xchar d_tower_dnum; 66. #ifdef MULDGN 67. xchar d_mines_dnum, d_quest_dnum; 68. d_level d_qstart_level, d_qlocate_level, d_nemesis_level; 69. d_level d_knox_level; 70. #endif 71. } dungeon_topology; 72. /* macros for accesing the dungeon levels by their old names */ 73. #define oracle_level (dungeon_topology.d_oracle_level) 74. #define bigroom_level (dungeon_topology.d_bigroom_level) 75. #ifdef REINCARNATION 76. #define rogue_level (dungeon_topology.d_rogue_level) 77. #endif 78. #define medusa_level (dungeon_topology.d_medusa_level) 79. #define stronghold_level (dungeon_topology.d_stronghold_level) 80. #define valley_level (dungeon_topology.d_valley_level) 81. #define wiz1_level (dungeon_topology.d_wiz1_level) 82. #define wiz2_level (dungeon_topology.d_wiz2_level) 83. #define wiz3_level (dungeon_topology.d_wiz3_level) 84. #define juiblex_level (dungeon_topology.d_juiblex_level) 85. #define orcus_level (dungeon_topology.d_orcus_level) 86. #define baalzebub_level (dungeon_topology.d_baalzebub_level) 87. #define asmodeus_level (dungeon_topology.d_asmodeus_level) 88. #define portal_level (dungeon_topology.d_portal_level) 89. #define sanctum_level (dungeon_topology.d_sanctum_level) 90. #define earth_level (dungeon_topology.d_earth_level) 91. #define water_level (dungeon_topology.d_water_level) 92. #define fire_level (dungeon_topology.d_fire_level) 93. #define air_level (dungeon_topology.d_air_level) 94. #define astral_level (dungeon_topology.d_astral_level) 95. #define tower_dnum (dungeon_topology.d_tower_dnum) 96. #ifdef MULDGN 97. #define mines_dnum (dungeon_topology.d_mines_dnum) 98. #define quest_dnum (dungeon_topology.d_quest_dnum) 99. #define qstart_level (dungeon_topology.d_qstart_level) 100. #define qlocate_level (dungeon_topology.d_qlocate_level) 101. #define nemesis_level (dungeon_topology.d_nemesis_level) 102. #define knox_level (dungeon_topology.d_knox_level) 103. #endif 104. 105. E stairway NEARDATA dnstair, NEARDATA upstair; /* stairs up and down. */ 106. #define xdnstair (dnstair.sx) 107. #define ydnstair (dnstair.sy) 108. #define xupstair (upstair.sx) 109. #define yupstair (upstair.sy) 110. 111. E stairway NEARDATA dnladder, NEARDATA upladder; /* ladders up and down. */ 112. #define xdnladder (dnladder.sx) 113. #define ydnladder (dnladder.sy) 114. #define xupladder (upladder.sx) 115. #define yupladder (upladder.sy) 116. 117. E stairway NEARDATA sstairs; 118. 119. E dest_area NEARDATA updest, NEARDATA dndest; /* level-change dest. areas */ 120. 121. E coord NEARDATA inv_pos; 122. E dungeon NEARDATA dungeons[]; 123. E s_level NEARDATA *sp_levchn; 124. #define dunlev_reached(x) (dungeons(x)->dnum.dunlev_ureached) 125. 126. #ifdef MULDGN 127. #include "quest.h" 128. E struct q_score quest_status; 129. #endif 130. 131. E int NEARDATA done_stopprint; 132. E int NEARDATA done_hup; 133. 134. E char NEARDATA pl_characterPL_CSIZ; 135. #ifdef TUTTI_FRUTTI 136. E char NEARDATA pl_fruitPL_FSIZ; 137. E int NEARDATA current_fruit; 138. E struct fruit NEARDATA *ffruit; 139. #endif 140. 141. E char NEARDATA tune6; 142. 143. E const char NEARDATA quitchars[]; 144. E const char NEARDATA vowels[]; 145. E const char NEARDATA ynchars[]; 146. E const char NEARDATA ynqchars[]; 147. E const char NEARDATA ynaqchars[]; 148. E const char NEARDATA ynNaqchars[]; 149. E long NEARDATA yn_number; 150. E int NEARDATA smeq[]; 151. E int NEARDATA doorindex; 152. E char NEARDATA *save_cm; 153. #define KILLED_BY_AN 0 154. #define KILLED_BY 1 155. #define NO_KILLER_PREFIX 2 156. E int NEARDATA killer_format; 157. E const char NEARDATA *killer; 158. E const char *configfile; 159. E char NEARDATA plnamePL_NSIZ; 160. E char NEARDATA dogname[]; 161. E char NEARDATA catname[]; 162. E char preferred_pet; 163. E const char NEARDATA *occtxt; /* defined when occupation != NULL */ 164. E const char NEARDATA *nomovemsg; 165. E const char NEARDATA nul[]; 166. E const char *traps[]; 167. E char lock[]; 168. 169. E const char NEARDATA sdir[], NEARDATA ndir[]; 170. E const schar NEARDATA xdir[], NEARDATA ydir[], zdir[]; 171. 172. E schar NEARDATA tbx, NEARDATA tby; /* set in mthrowu.c */ 173. E int NEARDATA dig_effort; /* apply.c, hack.c */ 174. E d_level NEARDATA dig_level; 175. E coord NEARDATA dig_pos; 176. E boolean NEARDATA dig_down; 177. 178. E long NEARDATA moves, NEARDATA monstermoves; 179. E long NEARDATA wailmsg; 180. 181. E boolean NEARDATA in_mklev; 182. E boolean NEARDATA stoned; 183. E boolean NEARDATA unweapon; 184. E boolean NEARDATA mrg_to_wielded; 185. 186. #ifdef KOPS 187. E boolean NEARDATA allow_kops; 188. #endif 189. 190. E const int shield_static[]; 191. 192. #ifndef SPELLS_H 193. #include "spell.h" 194. #endif 195. E struct spell NEARDATA spl_book[]; /* sized in decl.c */ 196. 197. #ifdef TEXTCOLOR 198. # ifndef COLOR_H 199. #include "color.h" 200. # endif 201. E const int zapcolors[]; 202. #endif 203. 204. E const char def_oc_symsMAXOCLASSES; /* default class symbols */ 205. E uchar oc_symsMAXOCLASSES; /* current class symbols */ 206. E const char def_monsymsMAXMCLASSES; /* default class symbols */ 207. E uchar monsymsMAXMCLASSES; /* current class symbols */ 208. 209. #ifndef OBJ_H 210. #include "obj.h" 211. #endif 212. 213. E struct obj NEARDATA *invent, NEARDATA *uarm, NEARDATA *uarmc, 214. NEARDATA *uarmh, NEARDATA *uarms, NEARDATA *uarmg, NEARDATA *uarmf, 215. #ifdef TOURIST 216. NEARDATA *uarmu, /* under-wear, so to speak */ 217. #endif 218. #ifdef POLYSELF 219. NEARDATA *uskin, 220. #endif 221. NEARDATA *uamul, NEARDATA *uleft, NEARDATA *uright, NEARDATA *ublindf, 222. NEARDATA *uwep; 223. 224. E struct obj NEARDATA *uchain; /* defined only when punished */ 225. E struct obj NEARDATA *uball; 226. E struct obj NEARDATA *migrating_objs; 227. E struct obj NEARDATA *billobjs; 228. E struct obj NEARDATA zeroobj; /* init'd and defined in decl.c */ 229. 230. #ifndef YOU_H 231. #include "you.h" 232. #endif 233. 234. E struct you NEARDATA u; 235. 236. #ifndef ONAMES_H 237. #include "onames.h" 238. #endif 239. #ifndef PM_H 240. #include "pm.h" 241. #endif 242. 243. E struct permonst NEARDATA playermon, NEARDATA *uasmon; 244. /* also decl'd extern in permonst.h */ 245. /* init'd in monst.c */ 246. 247. E struct monst NEARDATA youmonst; /* init'd and defined in decl.c */ 248. E struct monst NEARDATA *mydogs, NEARDATA *migrating_mons; 249. 250. E struct c_color_names { 251. char const *const c_black, *const c_amber, *const c_golden, 252. *const c_light_blue,*const c_red, *const c_green, 253. *const c_silver, *const c_blue, *const c_purple, 254. *const c_white; 255. } NEARDATA c_color_names; 256. #define Black c_color_names.c_black 257. #define amber c_color_names.c_amber 258. #define golden c_color_names.c_golden 259. #define light_blue c_color_names.c_light_blue 260. #define red c_color_names.c_red 261. #define green c_color_names.c_green 262. #define silver c_color_names.c_silver 263. #define blue c_color_names.c_blue 264. #define purple c_color_names.c_purple 265. #define White c_color_names.c_white 266. 267. E struct c_common_strings { 268. char const *const c_nothing_happens, *const c_thats_enough_tries, 269. *const c_silly_thing_to, *const c_shudder_for_moment; 270. } c_common_strings; 271. #define nothing_happens c_common_strings.c_nothing_happens 272. #define thats_enough_tries c_common_strings.c_thats_enough_tries 273. #define silly_thing_to c_common_strings.c_silly_thing_to 274. #define shudder_for_moment c_common_strings.c_shudder_for_moment 275. 276. /* Vision */ 277. E boolean NEARDATA vision_full_recalc; /* TRUE if need vision recalc */ 278. E char NEARDATA **viz_array; /* could see/in sight row pointers */ 279. 280. /* Window system stuff */ 281. E winid NEARDATA WIN_MESSAGE, NEARDATA WIN_STATUS; 282. E winid NEARDATA WIN_MAP, NEARDATA WIN_INVEN; 283. E char toplines[]; 284. #ifndef TERMCAP_H 285. E struct tc_gbl_data { /* also declared in termcap.h */ 286. char *tc_AS, *tc_AE; /* graphics start and end (tty font swapping) */ 287. int tc_LI, tc_CO; /* lines and columns */ 288. } tc_gbl_data; 289. #define AS tc_gbl_data.tc_AS 290. #define AE tc_gbl_data.tc_AE 291. #define LI tc_gbl_data.tc_LI 292. #define CO tc_gbl_data.tc_CO 293. #endif 294. 295. /* xxxexplain[] is in drawing.c */ 296. E const char *monexplain[], *objexplain[], *oclass_names[]; 297. 298. E const char NEARDATA *pl_classes; 299. 300. #undef E 301. 302. #endif /* DECL_H */ decl.h